<?php
/*


*/
class Class_model extends Model{
	function __construct(){
		parent::Model();
		$this->load->database();  //加载数据库
	}
	
	// ------------------------------------------------------------------------	
	/**
		* 先把表中的所有数据取出来
	*/	
	public function getsort($tablename){
		$query=$this->db->get($tablename);
		return $query->result();

	}
	
	// ------------------------------------------------------------------------
	/**
		* 获取指定父ID的分类
		* 如果有返回这个数组，没有就返否false
	*/
	public function getsort2($tablename,$classtopid)
	{
		$this->db->where('classtopid',$classtopid); 
		$query=$this->db->get($tablename);
		if($query->num_rows()>0)
		return $query->result();
		else
		return false;
	}
	

	// ------------------------------------------------------------------------
	/**
		* 家具分类用
		* 然后递归的取出各个子分
		* $array ： 对象（数组对象）  ,这个是从数据库中查出来的，可以缓存起来
		* $pid:第一级分类(这里默认的$pid=0是因为数据库中的pid为0的表示一级分类)
		* $y:
		* &$tdata : array
		* return: array
		* 返回 array
		* 例：
	*/
	function  getchildren($array,$pid=0,$y,&$tdata=array()){
		foreach ($array as $value){
			if($value->classtopid==$pid){
				$n = $y + 1;
				$value->deep = $y;
				$tdata[]=$value;
				//这里递归调用，不明白递归的朋友，去找几个简单的递归例子熟悉下
				$this->getChildren($array,$value->classid,$n,$tdata);
			}
		}
		return $tdata;
	}



	// ------------------------------------------------------------------------
	/**
		* 区域分类用
		* 然后递归的取出各个子分
		* $array ： 对象（数组对象）  ,这个是从数据库中查出来的，可以缓存起来
		* $pid:第一级分类(这里默认的$pid=0是因为数据库中的pid为0的表示一级分类)
		* $y:
		* &$tdata : array
		* return: array
		* 返回 array
		* 例：
	*/
	function  getchildren2($array,$pid=0,$y,&$tdata=array()){
		foreach ($array as $value){
			if($value->parent_id==$pid){
				$n = $y + 1;
				$value->deep = $y;
				$tdata[]=$value;
				//这里递归调用，不明白递归的朋友，去找几个简单的递归例子熟悉下
				$this->getchildren2($array,$value->region_id,$n,$tdata);
			}
		}
		return $tdata;
	}




	// ------------------------------------------------------------------------
	/**
		* 获取： 父类ID   => 子类数组
		* 返回 array
	*/
	function getsonclassname($classid,$showtxt)
	{
		$getchild=$this->getchildren($this->getsort('jiaju_class'),$classid,0);	
		$tempdata = array();
		$tempdata[0] = $showtxt;
		foreach ($getchild as $value): 
			$tempdata[$value->classid]=$value->classname;
        endforeach;
		return $tempdata;
	}


	// ------------------------------------------------------------------------
	/**
		* 前台调用
		* 返回对象
	*/
	public function getsonclassname2($classid)
	{
		$getchild=$this->getchildren($this->getsort('jiaju_class'),$classid,0);
		return $getchild;
	}



	// ------------------------------------------------------------------------
	/**
		* 获取： 子类ID   => 父类ID
		* return int
	*/
	function getclasstopid($classid)
	{
		$this->db->where('classid',$classid);
		$query = $this->db->get('jiaju_class');	// 获取结果集
		if ($query->num_rows > 0){
			$row = $query->row_array();				// 把结果集保存到数组
			return $row['classtopid'];
		}else
		{
			return false;
		}
	}
	
	// ------------------------------------------------------------------------
	/**
		* 获取逐级分类的名称
		* return  array 二维
	*/
	public function getclassle($classid,&$tdata=array())
	{
		// 循环：直到父ID为0
		if($this->getclasstopid($classid)!= 1)
		{
			$topid = $this->getclasstopid($classid);
			$this->getclassle($topid,$tdata);
		}
		$tdata[]=array($classid,$this->getclassname($classid));
		return $tdata;
		
	}
	
	
	// ------------------------------------------------------------------------
	/**
		* 获取： 由分类ID  => 分类名称
		* return string
	*/	
	function getclassname($classid)
	{
		if($classid!=1)
		{
		$this->db->where('classid',$classid);
		$query = $this->db->get('jiaju_class');	// 获取结果集
		$row = $query->row_array();				// 把结果集保存到数组
		return $row['classname'];
		}
		else
		{
			return "——";
		}
		
	}
	
	
	// ------------------------------------------------------------------------
	/**
		*  操作：添加分类
	*/	
	function addclass($data)
	{
		$classdata = array(
			'classname'		=> $data["classname"],
			'classtopid'	=>$data["classtopid"],
			'display'		=>1,
			'dateline' 		=>time()
		);
		
		$this->db->insert('jiaju_class', $classdata);    //插入数据
        if($this->db->affected_rows()==1){
            return 1;
        }
        else{
            return 0;
        }
		
	}
	
	// ------------------------------------------------------------------------
	/**
		*  操作：修改分类
	*/		
	function doupdateclass($data)
	{
		$classdata = array(
			'classname'		=> $data["classname"],
			'classtopid'	=>$data["classtopid"]
		);
		$this->db->where('classid',$data['classid']);
		$this->db->update('jiaju_class', $classdata);    //插入数据
        if($this->db->affected_rows()==1){
            return 1;
        }
        else{
            return 0;
        }
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
}

/* End of file  */